博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6、Modal
阅读量:6336 次
发布时间:2019-06-22

本文共 4120 字,大约阅读时间需要 13 分钟。

1、首先Modal是一个内容窗格、通常用来做一个选择或编辑。

先来看一下 tabs.html 做了什么。
/* --- tabs.html ----*/ 
Modals
Hobbits
Gollum
Frodo Baggins
Sam
/* --- tabs.html ----*/

上述常见了 3个 item 并对每个 item监听了一个 click方法 传了一个参数。 来看 tabs.js

/* --- tabs.js ----*/ import { Modal, NavController, Page} from 'ionic-angular';import { ModalsContentPage } from './modal.js' @Page({  templateUrl: 'build/pages/tabs/tabs.html',}) export class TabsPage {   static get parameters() {    return [[NavController]];  }     constructor(nav) {      this.nav = nav;  }   openModal(characterNum) {     let modal = Modal.create(ModalsContentPage, characterNum);    this.nav.present(modal);   } } /* --- tabs.js ----*/

首先 我导入了。import { ModalNavControllerPage } from 'ionic-angular' page不用说啦。

还记得。navController么?他是用来控制路由的 。我记得原来 用他路由传参数是。
this
.nav.push( ItemDetailsPage , {
       
item: item
});
 

那这里用的是 this.nav.present(modal); 看完以前的章节 可以得知当创建loading alert的时候 他都用的是 present 而不是 push那代表着。其实他本身并不是导航到另一个路由

而是变成一个层。覆盖到 我们的页面之上。这点要记住。Modal.create的方法接受个两个参数 一个是组件。一个就是我们的参数。。我们在来看 modal.js 是怎么接收这个参数的。
/* --- modal.js ----*/ import { NavParams, Page,ViewController} from 'ionic-angular'; @Page({    templateUrl: 'build/pages/tabs/modal.html',})export class ModalsContentPage {    static get parameters() {        return [[NavParams],[ViewController]];    }     constructor(params,viewCtrl) {        this.params = params;        this.viewCtrl = viewCtrl;        var characters = [            {                name: 'Gollum',                quote: 'Sneaky little hobbitses!',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'River Folk' },                    { title: 'Alter Ego', note: 'Smeagol' }                ]            },            {                name: 'Frodo',                quote: 'Go back, Sam! I\'m going to Mordor alone!',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'Shire Folk' },                    { title: 'Weapon', note: 'Sting' }                ]            },            {                name: 'Samwise Gamgee',                quote: 'What we need is a few good taters.',                image: 'img/1.jpg',                items: [                    { title: 'Race', note: 'Hobbit' },                    { title: 'Culture', note: 'Shire Folk' },                    { title: 'Nickname', note: 'Sam' }                ]            }        ];        this.character = characters[this.params.get('charNum')];    }     dismiss() {        this.viewCtrl.dismiss();    }} /* --- modal.js ----*/
首先呢 我导入了。
import { NavParamsPageViewController } from 'ionic-angular';

同样的 虽说我们路由的导航 从 this.nav.push( )变成了 this.nav.present() 但是我们从接收参数的方法并没有改变。我们同样是用this.params.get('charNum')获取参数

1、解析一下 constructor里的代码 
     1、
var 
characters 其实就是获取一个局部变量里面的数组就是数据。
  2、
this
.params.get(
'charNum'
获取一个参数 在 tabs.html 里我们得知他的参数返回一个number类型。 所以获取到了 
var 
characters 数组中的一条数据
    3、
this
.character 其实就相当于 ng1中的 
$scope.character 他本身跟局部变量 
var 
characters 并没有关系,所以这里把得到的数据 给作用域 
this
.character

2、来看 dismiss 方法 this.viewCtrl.dismiss(); viewCtrl : ViewController 中的 ViewController  他又是啥呢? 因为 modal 他的创建 是覆盖页面变成一个层 ,所以把这个层去除掉的时候

就需要用到 
this
.viewCtrl.dismiss();这个方法了。之后在来看 modal.html页面。
/* --- modal.html ----*/ 
Description

{
{character.name}}

{

{character.quote}}

{
{item.title}}
{
{item.note}}
/* --- modal.html ----*/

最终效果:

转载于:https://www.cnblogs.com/dandingjun/p/5562560.html

你可能感兴趣的文章
hdu5391Zball in Tina Town
查看>>
vs2013+ffmpeg开发环境搭建
查看>>
关于functioncharts饼状图篇
查看>>
xfce的主题
查看>>
wireshark抓取本地数据包
查看>>
Go语言中的匿名函数和闭包的样子
查看>>
MS Sql Server 数据库或表修复(DBCC CHECKDB)
查看>>
Java多线程(十)——线程优先级和守护线程
查看>>
JQuery实战--能够编辑的表格
查看>>
关于程序、进程和线程
查看>>
[javase学习笔记]-9.2 单继承与多重继承
查看>>
MyBatis generator 使用方式 小结
查看>>
RAP接口管理系统import进eclipse进行二次开发
查看>>
你应该知道的 5 个 Docker 工具
查看>>
js笔试题
查看>>
LINQ使用与并行
查看>>
查看Linux系统版本信息
查看>>
关闭windows打印服务
查看>>
Bootstrap入门
查看>>
CASE WHEN 及 SELECT CASE WHEN的用法(转)
查看>>